
/**
 * 任务：已知圆柱的底面半径为 20，高为 50，求该圆柱的体积。
 */
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码

/********** Begin **********/
import java.text.DecimalFormat;
    // 定义一个圆类，类名为 Circle
    class Circle {
        // 定义两个量，分别为半径和π值
        private double radius;
        public static final double PI = 3.141592653589793;
        // 有参构造器
        public Circle(double radius) {
            this.radius = radius;
        }

        // 定义一个方法，实现求圆面积，将圆面积返回，返回类型为double
        public double getArea() {
            return PI * radius * radius;
        }
    }

    // 定义一个公开的圆柱类 Cylinder
    public class Cylinder {
        // 定义圆柱中的高
        private double height;
        // 引用圆类
        private Circle base;

        // 有参构造
        public Cylinder(double height, Circle base) {
            this.height = height;
            this.base = base;
        }
        /**
         * 定义一个方法，该方法实现计算圆柱的体积，返回值为double
         */
        public double getVolume() {
            return base.getArea() * height;
        }
        // 定义主方法
        public static void main(String[] args) {
            // 通过有参构造创建圆对象，将底面半径设置为 20
            Circle base = new Circle(20);

            // 通过有参构造创建圆柱对象，将圆柱的高设置为 50，将圆对象传入
            Cylinder cylinder = new Cylinder(50, base);

            // 调用计算圆柱体积的方法
            double volume = cylinder.getVolume();

            // 四舍五入格式化不换行输出圆柱的体积，输出格式：圆柱的体积为xx
            DecimalFormat df = new DecimalFormat("#.00");
            System.out.println("圆柱的体积为" + df.format(volume));
        }
    }
/********** End **********/
